Skip to content

docs(AGENTS): tool credentials live in $HOME, never in project tree - #46

Merged
potiuk merged 1 commit into
mainfrom
feat/agents-credential-storage
May 4, 2026
Merged

docs(AGENTS): tool credentials live in $HOME, never in project tree#46
potiuk merged 1 commit into
mainfrom
feat/agents-credential-storage

Conversation

@potiuk

@potiuk potiuk commented May 4, 2026

Copy link
Copy Markdown
Member

Summary

Codify the credential-storage convention every existing framework tool already follows, so future tool integrations follow the same pattern.

  • Gmail OAuth → ~/.config/apache-steward/gmail-oauth.json
  • PonyMail session cookie → ~/.ponymail-mcp/session.json
  • GitHub auth → gh auth (~/.config/gh/)

Two reasons it's non-negotiable:

  1. The standard sandbox (see docs/setup/secure-agent-setup.md) denies reads on home-dir credential paths. An in-tree credential silently bypasses that boundary — every credential read should be an explicit, visible sandbox-bypass moment, not a silent in-tree file slurp.
  2. One credential file should serve every clone / worktree / project, not be re-acquired per checkout.

The new principle slots in as a sibling to the existing "Run the agent in the credential-isolation setup" block under ## Local setup.

Test plan

  • Visual review of the AGENTS.md diff — paragraph reads cleanly alongside the credential-isolation block above it.
  • No tool code change required: existing tools (tools/gmail/oauth-draft/src/oauth_draft/credentials.py, tools/ponymail/, tools/github/) already follow the rule.

…t tree"

Make the convention every existing framework tool already follows
(Gmail OAuth at ~/.config/apache-steward/gmail-oauth.json,
PonyMail session cookie at ~/.ponymail-mcp/session.json, GitHub
auth via gh auth → ~/.config/gh/) explicit in AGENTS.md so future
tool integrations follow the same pattern.

Two reasons it's non-negotiable: (1) the standard sandbox denies
reads on home-dir credential paths, so an in-tree credential
silently bypasses that boundary — every credential read should be
an explicit, visible sandbox-bypass moment, not a silent in-tree
file slurp; (2) one credential file should serve every clone /
worktree / project, not be re-acquired per checkout.

Generated-by: Claude Code (Claude Opus 4.7)
@potiuk
potiuk merged commit 8bd0efe into main May 4, 2026
7 checks passed
@potiuk
potiuk deleted the feat/agents-credential-storage branch May 4, 2026 16:15
@andreahlert andreahlert added the mode:platform Substrate / infra — not a mode (sandbox, CI, validators) label May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mode:platform Substrate / infra — not a mode (sandbox, CI, validators)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants